package com;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 使用大写字母 A,B,C,D...X,Y,Z定义的,都是泛型,把T换成A也一样,这里T只是名字上的意义而已
 * 
 * ? 表示不确定的java类型
 * 
 * T(type) 表示具体的一个java类型
 * 
 * K V (key value) 分别代表java 键值中的 Key Value
 * 
 * E(element) 代表 Element
 * 
 * 如果人家规定了泛型,我们没有传递类型使用的情况下,泛型类型就等于是Object
 * 
 * @author lenovo
 * @Date 2020年7月18日
 * @Time 上午10:51:52
 */
public class Collection_19_Generic_02 {

	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		// 只能添加String
		// list.add(1);
		list.add("aaa");
		list.add("aadsaa");
		list.add("aaa321");

		// 不需要强制类型转换
		for (String string : list) {
			System.out.println(string);
		}
//		aaa
//		aadsaa
//		aaa321

		List<User> users = new ArrayList<User>();
		users.add(new User(12));
		users.add(new User(11));
		users.add(new User(15));
		for (User user : users) {
			System.out.println(user.age);
		}
//		12
//		11
//		15

		Map<String, Integer> map = new HashMap<String, Integer>();
		map.put("sad", 2);
	}

}

class User {
	int age;

	public User(int age) {
		super();
		this.age = age;
	}

}